const
N = 1024;
var
k:array[0..N-1]of byte;
m,i,temp:Integer;
counts:array[0..255]of Integer;
indexes:array[0..255]of byte;
flag:boolean;
begin
randomize;
FillChar(counts,SizeOf(counts),$FF);
for i:=0 to N-1 do
begin
k[i] := Random(256);
if counts[k[i]]=-1 then begin
counts[k[i]] := 1;
indexes[k[i]] := k[i];
end else
inc(counts[k[i]]);
end;
repeat
flag := true;
for i:=0 to 255-1 do
begin
if counts[i]<counts[i+1] then
begin
temp := counts[i];
counts[i] := counts[i+1];
counts[i+1] := temp;
temp := indexes[i];
indexes[i] := indexes[i+1];
indexes[i+1] := temp;
flag := false;
end;
end;
until flag;
write('m = ');
readln(m);
for i:=0 to m-1 do
begin
writeln('Number ',indexes[i],' : ',Round(counts[i]*100/N),'%');
end;
readln;
end.